#ifndef __MYSTRING_H__
#define __MYSTRING_H__
#define true 1
#define false 0
#define Init_string1(obj,string) mystring obj;Init_string(&obj,string)

typedef struct string mystring;
struct string
{
    char *string;
    int size;
    int cubage;

    void (*print)(mystring *obj);
    int (*size1)(mystring *obj);
    int (*isequal)(mystring *obj1,mystring *obj2);
    int (*iscontains)(mystring *obj1,mystring *obj2);
    char* (*atindex)(mystring *obj,int index);
    void (*removestring)(mystring *obj,const char *p);
    int (*insertstring)(mystring *obj1,const char *p,int index);
    int (*toint)(mystring *obj);
    double(*todouble)(mystring *obj);
    void (*freestring)(mystring *obj);
    int (*reallocarray)(mystring  *obj);
};
int Init_string(mystring *obj, const char *str);
void Print(mystring *obj);
int Size1(mystring *obj);
int Isequal(mystring *obj1,mystring *obj2);
int Iscontains(mystring *obj1,mystring *obj2);
char* Atindex(mystring *obj,int index);
void Removestring(mystring *obj,const char *p);
int Insertstring(mystring *obj1,const char *p,int index);
int Toint(mystring *obj);
double Todouble (mystring *obj);
void FreeString(mystring *obj);
int Reallocarray(mystring  *obj);

#endif